Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix memory leak in Brother integration #42833

Merged
merged 1 commit into from Nov 4, 2020
Merged

Fix memory leak in Brother integration #42833

merged 1 commit into from Nov 4, 2020

Conversation

bieniu
Copy link
Member

@bieniu bieniu commented Nov 4, 2020

Breaking change

Proposed change

When the user restarts the HA with the Brother printer turned off or offline, subsequent integration setup attempts result in the creation of brother objects and shutdown listeners. This increases the usage of RAM.
This PR adds a call coordinator.shutdown() before calling ConfigEntryNotReady to fix this issue.

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New integration (thank you!)
  • New feature (which adds functionality to an existing integration)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Example entry for configuration.yaml:

# Example configuration.yaml

Additional information

Checklist

  • The code change is tested and works locally.
  • Local tests pass. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • The code has been formatted using Black (black --fast homeassistant tests)
  • Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • Untested files have been added to .coveragerc.

The integration reached or maintains the following Integration Quality Scale:

  • No score or internal
  • 馃 Silver
  • 馃 Gold
  • 馃弳 Platinum

To help with the load of incoming pull requests:

@project-bot project-bot bot added this to Needs review in Dev Nov 4, 2020
@project-bot project-bot bot moved this from Needs review to By Code Owner in Dev Nov 4, 2020
@hunterjm hunterjm added this to the 0.117.4 milestone Nov 4, 2020
Dev automation moved this from By Code Owner to Reviewer approved Nov 4, 2020
@hunterjm
Copy link
Member

hunterjm commented Nov 4, 2020

Verified in #42752 (comment)

@hunterjm hunterjm merged commit 34f5ad3 into home-assistant:dev Nov 4, 2020
Dev automation moved this from Reviewer approved to Done Nov 4, 2020
@bieniu bieniu deleted the brother-memory-leak branch November 4, 2020 14:39
@bieniu
Copy link
Member Author

bieniu commented Nov 4, 2020

@hunterjm Can this PR be tagged 0.117.4?

EDIT:
I'm blind, you've already tagged it.

@elupus
Copy link
Contributor

elupus commented Nov 4, 2020

Just to play devil's advocate here. If async_refresh throws an exception the leak is back. May be unlikely, but...

coordinator = Constructor()
try:
  Do stuff or throw not ready
except:
  coordinator.shutdown()
  raise

@github-actions github-actions bot locked and limited conversation to collaborators Nov 9, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
Dev
  
Done
Development

Successfully merging this pull request may close these issues.

RAM busy, system suspended
5 participants